문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 RAM/주소할당 문제 (문단 편집) === 1 MiB의 벽과 A20 Line === 이 부분은 하드웨어적 문제라기보단 8086과의 하위 호환성 때문에 생긴 구조이다. 8086/8088은 20비트의 주소선을 사용하여 1 MiB까지의 메모리에 접근할 수 있었다. [[8086]] 문서에도 나와 있지만 8086은 주소를 표시할 때 16비트 레지스터 2개를 사용하여 세그먼트([[16비트]]):오프셋(16비트)의 형태로 표현한다. 그런데 주소를 16 MiB(24비트)까지 사용할 수 있는 80286이 나오면서, 이 세그먼트:오프셋 표기가 꼬이게 되어[* 상세한 것은 [[http://saksin.tistory.com/1223|이 포스팅]]을 참조하기 바란다.] 하위 호환성에 문제가 생겼다. 그래서 기존 8086과의 호환성을 유지하기 위해서 주소 부분의 21번째 비트(0부터 카운트하므로)인 A20 라인을 기본적으로 비활성화하고 1 MiB보다 위의 메모리에 접근할 때 활성화하는 A20 Gate라는 구조를 집어넣었다.[* 오해하기 쉬운데, 이 A20 Gate 구조는 IBM이 IBM PC AT에 넣은 것이다. 즉 80286 CPU와는 관계가 전혀 없으며 실제로 80286 데이터시트를 보면 A20 Gate라는 용어는 어디에도 등장하지 않는다.(IBM PC AT Technical Reference 같은 문서에나 나온다) 즉 메인보드에 회로를 넣어서 구현한 것이지 CPU 자체에 내장된 기능 같은 게 아니다. 실제로 80286을 쓰는 비 IBM PC 계열 컴퓨터 중에서는 이런 구조가 없는 컴퓨터도 있다.(반대로 [[PC-9801]]처럼 IBM PC 가 아니면서도 A20 Gate 와 비슷한 기능을 넣어서 설계한 컴퓨터도 있다)] 이는 지금도 계속 이어져 오고 있으며, A20 Line을 활성화하지 않고 1 MiB를 넘어가면 실제와는 다른 엉뚱한 주소에 접근하는 것이 된다. 때문에 1 MiB 이상을 접근하고자 하는 운영 체제는 반드시 A20 Line을 활성화해야 한다. 지금은 BIOS에서 자동으로 활성화시켜 주기도 한다. 인텔은 [[네할렘]]부터는 A20 Line을 활성화하기 위한 물리적인 구조를 없애고 논리적인 명령으로만 처리하며, [[하스웰]]부터는 A20 Line이 항상 활성화된 상태로 출시된다. 메인보드에 따라 A20 Gate를 활성화하는 방법이 서로 다르다. BIOS 인터럽트를 호출하거나 시스템 제어 포트를 통하거나 또는 키보드 컨트롤러로 활성화하는 방법 등이 있다. 그러므로 A20 Gate 활성화 코드를 여러 개 만들어야 한다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기